(0) Obligation:

The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^2).


The TRS R consists of the following rules:

cond(true, x) → cond(odd(x), p(x))
odd(0) → false
odd(s(0)) → true
odd(s(s(x))) → odd(x)
p(0) → 0
p(s(x)) → x

Rewrite Strategy: INNERMOST

(1) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID) transformation)

Converted Cpx (relative) TRS to CDT

(2) Obligation:

Complexity Dependency Tuples Problem
Rules:

cond(true, z0) → cond(odd(z0), p(z0))
odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, z0) → c(COND(odd(z0), p(z0)), ODD(z0), P(z0))
ODD(0) → c1
ODD(s(0)) → c2
ODD(s(s(z0))) → c3(ODD(z0))
P(0) → c4
P(s(z0)) → c5
S tuples:

COND(true, z0) → c(COND(odd(z0), p(z0)), ODD(z0), P(z0))
ODD(0) → c1
ODD(s(0)) → c2
ODD(s(s(z0))) → c3(ODD(z0))
P(0) → c4
P(s(z0)) → c5
K tuples:none
Defined Rule Symbols:

cond, odd, p

Defined Pair Symbols:

COND, ODD, P

Compound Symbols:

c, c1, c2, c3, c4, c5

(3) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 4 trailing nodes:

P(0) → c4
ODD(s(0)) → c2
ODD(0) → c1
P(s(z0)) → c5

(4) Obligation:

Complexity Dependency Tuples Problem
Rules:

cond(true, z0) → cond(odd(z0), p(z0))
odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, z0) → c(COND(odd(z0), p(z0)), ODD(z0), P(z0))
ODD(s(s(z0))) → c3(ODD(z0))
S tuples:

COND(true, z0) → c(COND(odd(z0), p(z0)), ODD(z0), P(z0))
ODD(s(s(z0))) → c3(ODD(z0))
K tuples:none
Defined Rule Symbols:

cond, odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c3

(5) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing tuple parts

(6) Obligation:

Complexity Dependency Tuples Problem
Rules:

cond(true, z0) → cond(odd(z0), p(z0))
odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, z0) → c(COND(odd(z0), p(z0)), ODD(z0))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, z0) → c(COND(odd(z0), p(z0)), ODD(z0))
K tuples:none
Defined Rule Symbols:

cond, odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c

(7) CdtUsableRulesProof (EQUIVALENT transformation)

The following rules are not usable and were removed:

cond(true, z0) → cond(odd(z0), p(z0))

(8) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, z0) → c(COND(odd(z0), p(z0)), ODD(z0))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, z0) → c(COND(odd(z0), p(z0)), ODD(z0))
K tuples:none
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c

(9) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, z0) → c(COND(odd(z0), p(z0)), ODD(z0)) by

COND(true, 0) → c(COND(odd(0), 0), ODD(0))
COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, 0) → c(COND(false, p(0)), ODD(0))
COND(true, s(0)) → c(COND(true, p(s(0))), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))

(10) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), 0), ODD(0))
COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, 0) → c(COND(false, p(0)), ODD(0))
COND(true, s(0)) → c(COND(true, p(s(0))), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), 0), ODD(0))
COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, 0) → c(COND(false, p(0)), ODD(0))
COND(true, s(0)) → c(COND(true, p(s(0))), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))
K tuples:none
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c

(11) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing nodes:

COND(true, 0) → c(COND(false, p(0)), ODD(0))

(12) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), 0), ODD(0))
COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, s(0)) → c(COND(true, p(s(0))), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), 0), ODD(0))
COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, s(0)) → c(COND(true, p(s(0))), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))
K tuples:none
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c

(13) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 2 trailing tuple parts

(14) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
K tuples:none
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(15) CdtUsableRulesProof (EQUIVALENT transformation)

The following rules are not usable and were removed:

p(0) → 0

(16) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
K tuples:none
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(17) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
We considered the (Usable) Rules:

p(s(z0)) → z0
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = [1]   
POL(COND(x1, x2)) = x2   
POL(ODD(x1)) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c3(x1)) = x1   
POL(false) = 0   
POL(odd(x1)) = 0   
POL(p(x1)) = x1   
POL(s(x1)) = [1] + x1   
POL(true) = 0   

(18) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(19) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0))) by

COND(true, s(0)) → c(COND(true, 0), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))

(20) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(0)) → c(COND(true, 0), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(21) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing tuple parts

(22) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, 0))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(23) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, s(s(z0))) → c(COND(odd(z0), p(s(s(z0)))), ODD(s(s(z0)))) by

COND(true, s(s(x0))) → c(COND(odd(x0), s(x0)), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(0))) → c(COND(false, p(s(s(0)))), ODD(s(s(0))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))

(24) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, 0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(0))) → c(COND(false, p(s(s(0)))), ODD(s(s(0))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(x0))) → c(COND(odd(x0), s(x0)), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(0))) → c(COND(false, p(s(s(0)))), ODD(s(s(0))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(25) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing tuple parts

(26) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, 0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(x0))) → c(COND(odd(x0), s(x0)), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(27) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
We considered the (Usable) Rules:none
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, 0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(COND(x1, x2)) = [1]   
POL(ODD(x1)) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c3(x1)) = x1   
POL(false) = 0   
POL(odd(x1)) = [1]   
POL(p(x1)) = 0   
POL(s(x1)) = 0   
POL(true) = 0   

(28) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, 0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(x0))) → c(COND(odd(x0), s(x0)), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(29) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
We considered the (Usable) Rules:

p(s(z0)) → z0
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, 0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(COND(x1, x2)) = x2   
POL(ODD(x1)) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c3(x1)) = x1   
POL(false) = 0   
POL(odd(x1)) = 0   
POL(p(x1)) = x1   
POL(s(x1)) = [1] + x1   
POL(true) = 0   

(30) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, 0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(31) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, 0) → c(COND(odd(0), 0)) by

COND(true, 0) → c(COND(false, 0))

(32) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, 0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c(COND(false, 0))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c(COND(false, 0))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(33) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing tuple parts

(34) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, 0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c

(35) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, 0) → c
We considered the (Usable) Rules:none
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, 0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(COND(x1, x2)) = [1]   
POL(ODD(x1)) = 0   
POL(c) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c3(x1)) = x1   
POL(false) = 0   
POL(odd(x1)) = 0   
POL(p(x1)) = 0   
POL(s(x1)) = 0   
POL(true) = 0   

(36) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, 0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(s(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, 0) → c
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c

(37) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, s(0)) → c(COND(true, p(s(0)))) by

COND(true, s(0)) → c(COND(true, 0))

(38) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, 0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(0)) → c(COND(true, 0))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), z0), ODD(s(z0)))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, 0) → c
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c

(39) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 2 trailing nodes:

COND(true, 0) → c
COND(true, s(0)) → c(COND(true, 0))

(40) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(41) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0)))) by

COND(true, s(s(s(0)))) → c(COND(true, s(s(0))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(0))) → c(COND(false, s(0)), ODD(s(s(0))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))

(42) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(0)))) → c(COND(true, s(s(0))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(0))) → c(COND(false, s(0)), ODD(s(s(0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(43) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing tuple parts

(44) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(0)))) → c(COND(true, s(s(0))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(45) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, s(s(x0))) → c(COND(odd(x0), s(x0)), ODD(s(s(x0)))) by

COND(true, s(s(s(0)))) → c(COND(true, s(s(0))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(0))) → c(COND(false, s(0)), ODD(s(s(0))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))

(46) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(0)))) → c(COND(true, s(s(0))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(0))) → c(COND(false, s(0)), ODD(s(s(0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(47) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing tuple parts

(48) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(0)))) → c(COND(true, s(s(0))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(49) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID) transformation)

Split RHS of tuples not part of any SCC

(50) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c1

(51) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, s(s(s(0)))) → c(COND(true, p(s(s(s(0))))), ODD(s(s(s(0))))) by

COND(true, s(s(s(0)))) → c(COND(true, s(s(0))), ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))

(52) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(COND(true, s(s(0))), ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c(COND(true, s(s(0))), ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c1

(53) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID) transformation)

Split RHS of tuples not part of any SCC

(54) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c1, c2

(55) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
We considered the (Usable) Rules:none
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(COND(x1, x2)) = [2]   
POL(ODD(x1)) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c1(x1)) = x1   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(false) = [1]   
POL(odd(x1)) = [2]   
POL(p(x1)) = 0   
POL(s(x1)) = 0   
POL(true) = [1]   

(56) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c1, c2

(57) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
We considered the (Usable) Rules:

p(s(z0)) → z0
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(COND(x1, x2)) = x2   
POL(ODD(x1)) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c1(x1)) = x1   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(false) = 0   
POL(odd(x1)) = 0   
POL(p(x1)) = x1   
POL(s(x1)) = [1] + x1   
POL(true) = 0   

(58) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c1, c2

(59) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(s(s(s(s(z0)))))), ODD(s(s(s(s(z0)))))) by

COND(true, s(s(s(s(x0))))) → c(COND(odd(x0), s(s(s(x0)))), ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, p(s(s(s(s(s(0))))))), ODD(s(s(s(s(s(0)))))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(0))))) → c(COND(false, p(s(s(s(s(0)))))), ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))

(60) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, p(s(s(s(s(s(0))))))), ODD(s(s(s(s(s(0)))))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(0))))) → c(COND(false, p(s(s(s(s(0)))))), ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(x0))))) → c(COND(odd(x0), s(s(s(x0)))), ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, p(s(s(s(s(s(0))))))), ODD(s(s(s(s(s(0)))))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(0))))) → c(COND(false, p(s(s(s(s(0)))))), ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c1, c2

(61) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing tuple parts

(62) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, p(s(s(s(s(s(0))))))), ODD(s(s(s(s(s(0)))))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(x0))))) → c(COND(odd(x0), s(s(s(x0)))), ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, p(s(s(s(s(s(0))))))), ODD(s(s(s(s(s(0)))))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c1, c2

(63) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
We considered the (Usable) Rules:none
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, p(s(s(s(s(s(0))))))), ODD(s(s(s(s(s(0)))))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(COND(x1, x2)) = [1]   
POL(ODD(x1)) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c1(x1)) = x1   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(false) = 0   
POL(odd(x1)) = 0   
POL(p(x1)) = 0   
POL(s(x1)) = 0   
POL(true) = 0   

(64) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, p(s(s(s(s(s(0))))))), ODD(s(s(s(s(s(0)))))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(x0))))) → c(COND(odd(x0), s(s(s(x0)))), ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, p(s(s(s(s(s(0))))))), ODD(s(s(s(s(s(0)))))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c1, c2

(65) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
We considered the (Usable) Rules:

odd(0) → false
odd(s(0)) → true
p(s(z0)) → z0
odd(s(s(z0))) → odd(z0)
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, p(s(s(s(s(s(0))))))), ODD(s(s(s(s(s(0)))))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(COND(x1, x2)) = x1 + x2   
POL(ODD(x1)) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c1(x1)) = x1   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(false) = [1]   
POL(odd(x1)) = [1]   
POL(p(x1)) = x1   
POL(s(x1)) = [1] + x1   
POL(true) = [1]   

(66) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, p(s(s(s(s(s(0))))))), ODD(s(s(s(s(s(0)))))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, p(s(s(s(s(s(0))))))), ODD(s(s(s(s(s(0)))))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c1, c2

(67) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND(true, s(s(s(s(s(0)))))) → c(COND(true, p(s(s(s(s(s(0))))))), ODD(s(s(s(s(s(0))))))) by COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))

(68) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c1, c2

(69) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
We considered the (Usable) Rules:

odd(0) → false
odd(s(0)) → true
p(s(z0)) → z0
odd(s(s(z0))) → odd(z0)
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(COND(x1, x2)) = x1 + x2   
POL(ODD(x1)) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c1(x1)) = x1   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(false) = [1]   
POL(odd(x1)) = [1]   
POL(p(x1)) = x1   
POL(s(x1)) = [1] + x1   
POL(true) = [1]   

(70) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c1, c2

(71) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID) transformation)

Use forward instantiation to replace ODD(s(s(z0))) → c3(ODD(z0)) by

ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))

(72) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
S tuples:

COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), s(z0)), ODD(s(s(z0))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c1, c2, c3

(73) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 4 trailing nodes:

COND(true, s(s(s(0)))) → c1(ODD(s(s(s(0)))))
COND(true, s(s(s(0)))) → c(ODD(s(s(s(0)))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(s(0)))) → c2(ODD(s(s(s(0)))))

(74) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
S tuples:

COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c1, c2, c3

(75) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID) transformation)

Use forward instantiation to replace COND(true, s(s(x0))) → c(ODD(s(s(x0)))) by

COND(true, s(s(s(s(y0))))) → c(ODD(s(s(s(s(y0))))))

(76) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
S tuples:

COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
K tuples:

COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c1, c2, c3

(77) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID) transformation)

Use forward instantiation to replace COND(true, s(s(x0))) → c(ODD(s(s(x0)))) by

COND(true, s(s(s(s(y0))))) → c(ODD(s(s(s(s(y0))))))

(78) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
S tuples:

COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0))))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
K tuples:

COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c1, c2, c3

(79) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), p(s(s(s(s(s(s(z0)))))))), ODD(s(s(s(s(s(s(z0)))))))) by COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), s(s(s(s(s(z0)))))), ODD(s(s(s(s(s(s(z0))))))))

(80) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
p(s(z0)) → z0
Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), s(s(s(s(s(z0)))))), ODD(s(s(s(s(s(s(z0))))))))
S tuples:

ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), s(s(s(s(s(z0)))))), ODD(s(s(s(s(s(s(z0))))))))
K tuples:

COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c1, c2, c3

(81) CdtUsableRulesProof (EQUIVALENT transformation)

The following rules are not usable and were removed:

p(s(z0)) → z0

(82) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), s(s(s(s(s(z0)))))), ODD(s(s(s(s(s(s(z0))))))))
S tuples:

ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), s(s(s(s(s(z0)))))), ODD(s(s(s(s(s(s(z0))))))))
K tuples:

COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
Defined Rule Symbols:

odd

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c1, c2, c3

(83) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), s(s(s(s(s(z0)))))), ODD(s(s(s(s(s(s(z0))))))))
We considered the (Usable) Rules:none
And the Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), s(s(s(s(s(z0)))))), ODD(s(s(s(s(s(s(z0))))))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = [1]   
POL(COND(x1, x2)) = x2   
POL(ODD(x1)) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c1(x1)) = x1   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(false) = 0   
POL(odd(x1)) = 0   
POL(s(x1)) = [1] + x1   
POL(true) = 0   

(84) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), s(s(s(s(s(z0)))))), ODD(s(s(s(s(s(s(z0))))))))
S tuples:

ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
K tuples:

COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), s(s(s(s(s(z0)))))), ODD(s(s(s(s(s(s(z0))))))))
Defined Rule Symbols:

odd

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c1, c2, c3

(85) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
We considered the (Usable) Rules:none
And the Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), s(s(s(s(s(z0)))))), ODD(s(s(s(s(s(s(z0))))))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = [1]   
POL(COND(x1, x2)) = [2]x22   
POL(ODD(x1)) = x1   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c1(x1)) = x1   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(false) = [1]   
POL(odd(x1)) = [2] + [2]x1   
POL(s(x1)) = [2] + x1   
POL(true) = [1]   

(86) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
odd(0) → false
Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(0)))) → c1(COND(true, s(s(0))))
COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), s(s(s(s(s(z0)))))), ODD(s(s(s(s(s(s(z0))))))))
S tuples:none
K tuples:

COND(true, s(s(s(0)))) → c2(COND(true, s(s(0))))
COND(true, s(s(s(s(x0))))) → c(ODD(s(s(s(s(x0))))))
COND(true, s(s(s(s(0))))) → c(ODD(s(s(s(s(0))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), s(s(s(z0)))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(s(0)))))) → c(COND(true, s(s(s(s(0))))), ODD(s(s(s(s(s(0)))))))
COND(true, s(s(s(s(s(s(z0))))))) → c(COND(odd(z0), s(s(s(s(s(z0)))))), ODD(s(s(s(s(s(s(z0))))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
Defined Rule Symbols:

odd

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c1, c2, c3

(87) SIsEmptyProof (BOTH BOUNDS(ID, ID) transformation)

The set S is empty

(88) BOUNDS(1, 1)